export const calcDate = (date1, date2) => {
    let date3 = date2 - date1

    let days = Math.floor(date3 / (24 * 3600 * 1000))

    let leave1 = date3 % (24 * 3600 * 1000) // 计算天数后剩余的毫秒数
    let hours = Math.floor(leave1 / (3600 * 1000))

    let leave2 = leave1 % (3600 * 1000) // 计算小时数后剩余的毫秒数
    let minutes = Math.floor(leave2 / (60 * 1000))

    let leave3 = leave2 % (60 * 1000) // 计算分钟数后剩余的毫秒数
    let seconds = Math.round(date3 / 1000)
    return {
        leave1,
        leave2,
        leave3,
        days: days,
        hours: hours,
        minutes: minutes,
        seconds: seconds
    }
}

/**
 * 日期格式化
 */
export function dateFormat(date) {
    let format = 'yyyy-MM-dd hh:mm:ss'
    if (date !== 'Invalid Date') {
        let o = {
            'M+': date.getMonth() + 1, // month
            'd+': date.getDate(), // day
            'h+': date.getHours(), // hour
            'm+': date.getMinutes(), // minute
            's+': date.getSeconds(), // second
            'q+': Math.floor((date.getMonth() + 3) / 3), // quarter
            'S': date.getMilliseconds() // millisecond
        }
        if (/(y+)/.test(format)) {
            format = format.replace(RegExp.$1,
                (date.getFullYear() + '').substr(4 - RegExp.$1.length))
        }
        for (let k in o) {
            if (new RegExp('(' + k + ')').test(format)) {
                format = format.replace(RegExp.$1,
                    RegExp.$1.length === 1 ? o[k]
                        : ('00' + o[k]).substr(('' + o[k]).length))
            }
        }
        return format
    }
    return ''
}

export function timeToValues(time) {
    let times = time && time.split(':')
    if (times.length === 3) {
        let hour = times[0];
        let min = times[1];
        let sec = times[2];
        return Number(hour * 3600) + Number(min * 60) + Number(sec);
    }
    if (times.length === 2) {
        let min = times[0];
        let sec = times[1];
        return Number(min * 60) + Number(sec);
    }
    if (times.length === 1) {
        let sec = times[0];
        return Number(sec);
    }
    return 0
}
